nethackfandomcom-20200214-history
Source:NetHack 3.2.0/vmsconf.h
Below is the full text to vmsconf.h from the source code of NetHack 3.2.0. To link to a particular line, write [[NetHack 3.2.0/vmsconf.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)vmsconf.h 3.2 96/03/02 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifdef VMS 6. #ifndef VMSCONF_H 7. #define VMSCONF_H 8. 9. /* 10. * Edit these to choose values appropriate for your site. 11. * WIZARD is the username allowed to use the debug option of nethack; no harm 12. * is done by leaving it as a username that doesn't exist at your site. 13. * HACKDIR can be overridden at run-time with the logical name HACKDIR, as in 14. * $ define hackdir disk$users:games.nethack 15. * Trailing NULs are present in the default values in order to make some 16. * extra room for patching longer values into an existing executable. 17. */ 18. #define Local_WIZARD "NHWIZARD\0\0\0\0" 19. #define Local_HACKDIR "DISK$USERS:GAMES.NETHACK.3-2-0.PLAY\0\0\0\0\0\0\0\0" 20. 21. /* 22. * This section cleans up the stuff done in config.h so that it 23. * shouldn't need to be modified. It's conservative so that if 24. * config.h is actually edited, the changes won't impact us. 25. */ 26. #ifdef UNIX 27. # undef UNIX 28. #endif 29. #ifdef HACKDIR 30. # undef HACKDIR 31. #endif 32. #ifdef WIZARD 33. # undef WIZARD 34. #endif 35. #ifdef WIZARD_NAME 36. # undef WIZARD_NAME 37. #endif 38. #define HACKDIR Local_HACKDIR 39. #ifndef KR1ED 40. # define WIZARD Local_WIZARD 41. # define WIZARD_NAME WIZARD 42. #else 43. # define WIZARD 1 44. # define WIZARD_NAME Local_WIZARD 45. #endif 46. 47. /* filenames require punctuation to avoid redirection via logical names */ 48. #undef RECORD 49. #define RECORD "record;1" /* scoreboard file (retains high scores) */ 50. #undef LOGFILE 51. #define LOGFILE "logfile;0" /* optional file (records all games) */ 52. 53. #define HLOCK "perm;1" /* an empty file used for locking purposes */ 54. 55. /* want compression--for level & save files--performed within NetHack itself */ 56. #ifdef COMPRESS 57. # undef COMPRESS 58. #endif 59. #ifndef INTERNAL_COMP 60. # define INTERNAL_COMP 61. #endif 62. 63. /* 64. * If nethack.exe will be installed with privilege so that the playground 65. * won't need to be left unprotected, define SECURE to suppress a couple 66. * of file protection fixups (protection of bones files and ownership of 67. * save files). 68. */ 69. /* #define SECURE /**/ 70. 71. /* 72. * Put the readonly data files into a single container rather than into 73. * separate files in the playground directory. 74. */ 75. #define DLB /* use data librarian code */ 76. 77. /* 78. * You may define TEXTCOLOR if your system has any terminals that recognize 79. * ANSI color sequences of the form ``where the first # is 80. * a number between 40 and 47 represented background color, and the second 81. * # is a number between 30 and 37 representing the foreground color. 82. * GIGI terminals and DECterm windows on color VAXstations support these 83. * color escape sequences, as do some 3rd party terminals and many micro 84. * computers. 85. */ 86. /* #define TEXTCOLOR /**/ 87. 88. /* 89. * If you define USE_QIO_INPUT, then you'll get raw characters from the 90. * keyboard, not unlike those of the unix version of Nethack. This will 91. * allow you to use the Escape key in normal gameplay, and the appropriate 92. * control characters in Wizard mode. It will work most like the unix version. 93. * It will also avoid "" being displayed when ^Y is pressed. 94. * 95. * Otherwise, the VMS SMG calls will be used. These calls block use of 96. * the escape key, as well as certain control keys, so gameplay is not 97. * the same, although the differences are fairly negligible. You must 98. * then use a VTxxx function key or two s to give an ESC response. 99. */ 100. #define USE_QIO_INPUT /* use SYS$QIOW instead of SMG$READ_KEYSTROKE */ 101. 102. /* 103. * Allow the user to decide whether to pause via timer or excess screen 104. * output for various display effects like explosions and moving objects. 105. */ 106. #define TIMED_DELAY /* enable the `timed_delay' run-time option */ 107. 108. /* 109. * If you define MAIL, then NetHack will capture incoming broadcast 110. * messages such as "New mail from so-and-so" and "Print job completed," 111. * and then deliver them to the player. For mail and phone broadcasts 112. * a scroll of mail will be created, which when read will cause NetHack 113. * to prompt the player for a command to spawn in order to respond. The 114. * latter capability will not be available if SHELL is disabled below. 115. * If you undefine MAIL, broadcasts will go straight to the terminal, 116. * resulting in disruption of the screen display; use to redraw. 117. */ 118. #define MAIL /* enable broadcast trapping */ 119. 120. /* 121. * SHELL enables the player to 'escape' into a spawned subprocess via 122. * the '!' command. Logout or attach back to the parent to resume play. 123. * If the player attaches back to NetHack, then a subsequent escape will 124. * re-attach to the existing subprocess. Any such subprocess left over 125. * at game exit will be deleted by an exit handler. 126. * SUSPEND enables someone running NetHack in a subprocess to reconnect 127. * to the parent process with the command; this is not very 128. * close to Unix job control, but it's better than nothing. 129. */ 130. #define SHELL /* do not delete the '!' command */ 131. #define SUSPEND /* don't delete the ^Z command, such as it is */ 132. 133. #define RANDOM /* use sys/share/random.c instead of vaxcrtl rand */ 134. 135. #define FCMASK 0660 /* file creation mask */ 136. 137. /* 138. * The remainder of the file should not need to be changed. 139. */ 140. 141. /* data librarian defs */ 142. #ifdef DLB 143. # define DLBFILE "nh-data.dlb" 144. /* 145. * Since we can do without case insensitive filename comparison, 146. * avoid enabling it because that requires compiling and linking 147. * src/hacklib into util/dlb_main. 148. */ 149. /* # define FILENAME_CMP strcmpi /* case insensitive */ 150. #endif 151. 152. #if defined(VAXC) && !defined(ANCIENT_VAXC) 153. # ifdef volatile 154. # undef volatile 155. # endif 156. # ifdef const 157. # undef const 158. # endif 159. #endif 160. 161. #ifdef __DECC 162. # define STRICT_REF_DEF /* used in lev_main.c */ 163. #endif 164. #ifdef STRICT_REF_DEF 165. # define DEFINE_OSPEED 166. #endif 167. 168. #ifndef alloca 169. /* bison generated foo_yacc.c might try to use alloca() */ 170. # ifdef __GNUC__ 171. # define alloca __builtin_alloca 172. # else 173. # define ALLOCA_HACK /* used in util/panic.c */ 174. # endif 175. #endif 176. 177. #ifdef _DECC_V4_SOURCE 178. /* excludes some necessary typedefs when _DECC_V4_SOURCE is defined */ 179. #include 180. # ifndef __PID_T 181. # define __PID_T 182. typedef __pid_t pid_t; 183. # endif 184. # ifndef __UID_T 185. # define __UID_T 186. typedef __uid_t uid_t; 187. # endif 188. # ifndef __GID_T 189. # define __GID_T 190. typedef __gid_t gid_t; 191. # endif 192. #endif /* _DECC_V4_SOURCE */ 193. 194. #include 195. #if 0 /* is missing for old gcc versions; skip it to save time */ 196. #include 197. #else /* values needed from missing include file */ 198. # define O_RDONLY 0 199. # define O_WRONLY 1 200. # define O_RDWR 2 201. # define O_CREAT 0x200 202. # define O_TRUNC 0x400 203. #endif 204. 205. #ifndef REDO 206. # define Getchar nhgetch 207. #endif 208. #define tgetch vms_getchar 209. 210. #include "system.h" 211. 212. #define index strchr 213. #define rindex strrchr 214. 215. /* Use the high quality random number routines. */ 216. #if defined(RANDOM) 217. #define Rand() random() 218. /* VMS V7 adds these entry points to DECC$SHR; stick with the nethack-supplied 219. code to avoid having to deal with version-specific conditionalized builds */ 220. #define random nh_random 221. #define srandom nh_srandom 222. #define initstate nh_initstate 223. #define setstate nh_setstate 224. #else 225. #define Rand() rand() 226. #endif 227. 228. #ifndef __GNUC__ 229. #define bcopy(s,d,n) memcpy((d),(s),(n)) /* vaxcrtl */ 230. #endif 231. #define abort() vms_abort() /* vmsmisc.c */ 232. #define creat(f,m) vms_creat(f,m) /* vmsfiles.c */ 233. #define exit(sts) vms_exit(sts) /* vmsmisc.c */ 234. #define getuid() vms_getuid() /* vmsunix.c */ 235. #define link(f1,f2) vms_link(f1,f2) /* vmsfiles.c */ 236. #define open(f,k,m) vms_open(f,k,m) /* vmsfiles.c */ 237. /* #define unlink(f0) vms_unlink(f0) /* vmsfiles.c */ 238. #ifdef VERYOLD_VMS 239. #define unlink(f0) delete(f0) /* vaxcrtl */ 240. #else 241. #define unlink(f0) remove(f0) /* vaxcrtl, decc$shr */ 242. #endif 243. #define C$$TRANSLATE(n) c__translate(n) /* vmsfiles.c */ 244. 245. /* VMS global names are case insensitive... */ 246. #define An vms_an 247. #define The vms_the 248. #define Shk_Your vms_shk_your 249. 250. /* avoid global symbol in Alpha/VMS V1.5 STARLET library (link trouble) */ 251. #define ospeed vms_ospeed 252. 253. /* used in several files which don't #include "extern.h" */ 254. extern void FDECL(vms_exit, (int)); 255. extern int FDECL(vms_open, (const char *,int,unsigned)); 256. 257. #endif /* VMSCONF_H */ 258. #endif /* VMS */ [[Category:NetHack 3.2.0 source code|vmsconf.h]